package work.chenbo.spring_boot_shiro.base;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;

import java.io.Serializable;
import java.util.List;

/**
 * @author ChenBo
 * @interfaceName BaseService
 * @date 2019/10/30
 */
@FunctionalInterface
public interface BaseService<E,ID extends Serializable> {
    /**
     * 获取Mapper
     * @author ChenBo
     * @date 2019/10/30
     */
     BaseMapper<E> getMapper();

     /**
      * 根据ID获取对象
      * @author ChenBo
      * @date 2019/10/30
      */
     default E getById(ID id){
        return this.getMapper().selectById(id);
     }

     /**
      * 添加数据
      * @author ChenBo
      * @date 2019/10/30
      */
     default int save(E entity){
         return this.getMapper().insert(entity);
     }

     /**
      * 根据ID更新非空数据
      * @author ChenBo
      * @date 2019/10/30
      */
     default int update(E entity){
         return this.getMapper().updateById(entity);
     }

     /**
      * 根据ID批量查询
      * @author ChenBo
      * @date 2019/10/30
      */
     default List<E> getByBatchIds(List<ID> ids){
         return this.getMapper().selectBatchIds(ids);
     }


}
